package com.devin.bullshitgenerator.generator;

import com.devin.bullshitgenerator.util.JSONUtils;

import java.util.ArrayList;
import java.util.List;

public class BullshitGeneratorImpl2 implements  BullshitGenerator{
    public static String[] 论述= (String[]) JSONUtils.getList("bosh").toArray();
    public static String[] 名人名言= (String[]) JSONUtils.getList("famous").toArray();
    public static String[] 后面垫话 =(String[]) JSONUtils.getList("after").toArray();
    public static String[]  前面垫话= (String[]) JSONUtils.getList("before").toArray();
    public static String 随便取一句(String[] 列表){
        int 坐标 = (int) Math.floor( Math.random() * 列表.length );
        return 列表[坐标];
    }
    public static String 主题;
    public static int 随便取一个数(Integer 最小值,Integer 最大值){
        if(最小值 == null){
            最小值 = 0;
        }
        if(最大值 == null){
            最大值 = 100;
        }
        int 数字 = (int)(Math.random()*( 最大值 - 最小值 ) + 最小值);
        return 数字;
    }

    public static String 来点名人名言(){
        String 名言 = 随便取一句(名人名言);
        名言 = 名言.replace("曾经说过", 随便取一句(前面垫话) );
        名言 = 名言.replace("这不禁令我深思", 随便取一句(后面垫话) );
        return 名言;
    }

    public static String 来点论述(){
        String 句子 = 随便取一句(论述);
//      句子 = 句子.replace(RegExp("主题", "g"),主题);
        句子 = 句子.replace("主题",主题);
        return 句子;
    }

    public static String 增加段落(String 章节){
        if(章节.endsWith(" ")){
            章节 = 章节.substring(0,章节.length()-2);
        }
//        if(章节[章节.length-1] === " "){
//            章节 = 章节.slice(0,-2)
//        }
        return "　　" + 章节 + "。 ";
    }

//    public static String 生成文章(String 主题){
//        return 生成文章(主题,800);
//    }

    public String generate(String 主题,Integer 需要的文章长度){
        this.主题=主题;
        List<String> 文章 = new ArrayList<>();
//      for(String 空 : 主题){
        String 章节 = "";
        Integer 章节长度 = 0;
        while( 章节长度 < 需要的文章长度 ){
            Integer 随机数 = 随便取一个数(null,null);
            if(随机数 < 5 && 章节.length() > 200){
                章节 = 增加段落(章节);
                文章.add(章节);
                章节 = "";
            }else if(随机数 < 20){
                String 句子 = 来点名人名言();
                章节长度 = 章节长度 + 句子.length();
                章节 = 章节 + 句子;
            }else{
                String 句子 = 来点论述();
                章节长度 = 章节长度 + 句子.length();
                章节 = 章节 + 句子;
            }
        }
        章节 = 增加段落(章节);
        文章.add(章节);
//      }
        StringBuffer stringBuffer = new StringBuffer();
        for(String 文 : 文章){
            stringBuffer.append(文);
            stringBuffer.append("\n");
        }
        return stringBuffer.toString();
    }
}
